home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1995-11-25 | 4.9 KB | 72 lines |
- (******************************************************************************)
- (* This MODULE is Public Domain. Copy me like a beast! *)
- (* Christian Ledermann *)
- (* Wölfelkofen 2 *)
- (* 84166 Adlkofen *)
- (******************************************************************************)
- (* *)
- (* Started: 20.12.92 03:54:30 *)
- (* Version: 20.01.94 04:12:54 *)
- (* *)
- (******************************************************************************)
- (* *)
- (* Diese Software ist ohne jede Garantie. Ich verspreche *)
- (* keinerlei Wartung und übernehme keine Verantwortung für Schäden die *)
- (* durch die Benutzung dieses Programmes entstehen. *)
- (* Jegliche Ersatzansprüche lehne ich ab. *)
- (* *)
- (******************************************************************************)
- DEFINITION MODULE KbdEvnt;
-
- FROM SYSTEM IMPORT ADDRESS;
-
- PROCEDURE MenuSearch(AppID:INTEGER; MenuTree:ADDRESS;KeyState,Key:INTEGER;
- VAR Taste:CHAR ):BOOLEAN;
- (*************************************************************************)
- (* Mit MenuSearch kann man seine Drop-Down Menüs durch Tastaturkürzel *)
- (* bedienen. *)
- (* Der Menüeintrag muß dabei folgendermaßen aufgebaut sein: *)
- (* Text (wie Üblich); Blank (wichtig sonst wird der Shortcut nicht als *)
- (* solcher erkannt!); Zeichen für Shift, Alternate, Control; Taste (hier *)
- (* sind nur Großbuchstaben oder Sonderzeichen erlaubt) *)
- (* Zeichen für Shift : CHR(1), Im RCS 1.4 mit Control 'A' zu erreichen. *)
- (* Zeichen für Alternate : CHR(7), Im RCS mit Control 'G' zu erreichen. *)
- (* Zeichen für Control : ^ *)
- (* Diese drei Zeichen können kombiniert werden müssen aber in dieser *)
- (* Reihenfolge stehen. *)
- (* Als Taste sind sämtliche Zeichen zugelassen die auf der Tastatur *)
- (* stehen inclusive der Funktionstasten und Help. *)
- (* Ein Menüeintrag muß also folgendermaßen aussehen : ' Speichern ^F2' *)
- (* Im Programm hat dann der Druck der Taste control F2 die gleiche *)
- (* Wirkung wie die Anwahl des Menüeintrages. *)
- (* Einschränkungen : Shift 0-9 kann nur über das Nummernfeld erreicht *)
- (* werden, vor §,",!,%,... muss(!) das Shift zeichen stehen. *)
- (* Wenn man einige Einträge doppelt vergibt wird immer nur der erste *)
- (* gefunden, es sei denn er wäre disabled. *)
- (* *)
- (* AppID : ID des aufrufenden Programmes, dies ist der Rückgabewert von *)
- (* AppInitialize. *)
- (* MenuTree : Die ADDRESSe des Menüs das auf Shortcuts untersucht wird, *)
- (* Diese ADDRESSe braucht man auch zum Aufbau der Menüzeile mit *)
- (* AES.MenuBar; sie wird mit AES.ResourceGetAdrr ermittelt. *)
- (* KeyState : Status der Shift, Control und Alternate Tasten; wird von *)
- (* AES.EventMultiple als MoKState geliefert. *)
- (* Key : Scancode und Asciiwert der gedrückten Taste, wird von *)
- (* AES.EventMultiple als KReturn geliefert. *)
- (* Taste : gibt den CHAR der gedrückten Taste als Großbuchstabe zurück *)
- (* dies ist dazu gedacht falls die Taste nicht im Menü zu finden war in *)
- (* eine eigene Tastaturroutine zu verzweigen, und die Berechnung der *)
- (* Taste zu vermeiden. *)
- (* Rückgabe : TRUE falls die Taste gefunden wurde und die entsprechende *)
- (* Message ans eigene Programm abgeschickt wurde, FALSE wenn der Shortcut*)
- (* nicht in der Menüleiste gefunden wurde. *)
- (* Dies wieder um eine eigene Tastaturroutine einzubinden für nicht im *)
- (* Menü verzeichnete Shortcuts. *)
- (* -> ST-Computer 11/89. *)
- (*************************************************************************)
-
- PROCEDURE ConcatScanString(VAR ScanString : ARRAY OF CHAR;KeyState, Key :INTEGER);
- (*********** Hilfsprogramm für MenuSearch ************************)
-
- END KbdEvnt.
-